package com.lh.tams.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

import com.lh.tams.dao.DeptDao;
import com.lh.tams.dao.system.PersonDao;
import com.lh.tams.domain.TamsDept;
import com.lh.tams.domain.TamsPerson;
import com.lh.tams.exception.BusinessException;
import com.lh.tams.util.DataGridModel;
import com.lh.tams.util.Page;

@Service
public class DeptService {
	private DeptDao deptDao;
	private PersonDao personDao;

	public void setDeptDao(DeptDao deptDao) {
		this.deptDao = deptDao;
	}
	
	public void setPersonDao(PersonDao personDao) {
		this.personDao = personDao;
	}


	public Page query(DataGridModel dgm,TamsDept dept){
		return deptDao.query(dgm, dept);
	}
	
	public void add(TamsDept dept){
		//查询是否存在重复部门名称
		if(deptDao.query(dept.getDeptName(),dept.getIdBgt())){
			throw new BusinessException("该部门名称已存在");
		}
		
		deptDao.add(dept);
	}
	
	public void update(TamsDept dept){
		
		//查询是否存在重复部门名称
		if(deptDao.query(dept.getDeptName(),dept.getIdBgt())){
			throw new BusinessException("该部门名称已存在");
		}
		
		deptDao.update(dept);
	}
	
	public void delete(long[] ids){
		
		//查询部门下的所有警员
		List<TamsPerson> list= new ArrayList<TamsPerson>();
		for (int i = 0; i < ids.length; i++) {
			List<TamsPerson> l = deptDao.queryPersonIdByDept(ids[i]);
			list.addAll(l);
		}
//		long[] personIds = new long[list.size()];
//		for(int i=0;i<list.size();i++){
//			personIds[i] = list.get(0).getIdBgt();
//		}
//		//删除部门下的所有警员
//		personDao.delete(personIds);
		if(list.size()>0){
			throw new BusinessException("部门下存在警员，请先删除该部门下的警员!");
		}
		
		deptDao.delete(ids);
	}
}
